A jornada rumo a kernels de alto desempenho começa com a transição de orientado a operações programação (PyTorch Eager) para consciente de hardware programação. O Triton atua como a ponte essencial nesse caminho.
1. Definindo a Pilha
O Triton é uma linguagem e compilador para programação paralela, projetado para tornar viável escrever kernels personalizados de alto desempenho em sintaxe Python. Ele ocupa um espaço único no meio-termo:
- PyTorch Eager: Alta abstração, fácil de usar, mas controle limitado sobre a utilização do hardware.
- CUDA C++: Controle máximo, mas alta complexidade (gerenciamento manual da memória compartilhada e sincronização).
- Triton: Sintaxe Pythonica com nível de bloco (em blocos) de controle.
2. O Paradigma em Blocos
Diferentemente do CUDA, que opera no nível de thread, o Triton utiliza um modelo baseado em blocos (em blocos) de programação. Isso é especialmente relevante para aprendizado profundo, onde os dados (matrizes, mapas de atenção) são naturalmente estruturados em blocos.
3. A Ilusão de Desempenho
Uma crença comum é achar que o Triton é apenas "PyTorch mais rápido". Na realidade, é um paradigma distinto. Os ganhos de desempenho vêm da capacidade do desenvolvedor de eliminar gargalos (como a "Parede da Memória") fundindo operações para manter os dados na SRAM rápida interna ao chip.